package Interfaces;
import HLW;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import Motor.Carta;
import Motor.Juego;

public class MenuInicial extends Canvas { 
	
	Figura[] almacen;
	int puntero=0;
	Display display;
	Juego j;
	
	double porcentX=(double)getWidth()/240;
	double porcentY=(double)getHeight()/320;
	
	public MenuInicial(Display d,Juego j){
		almacen= new Figura[4];
		almacen[0]=new Figura((int)((48.0/240.0)*getWidth()),
				  (int)((80.0/320.0)*getHeight()),
				  (int)(144*porcentX),
				  (int)(46*porcentY));
		almacen[1]=new Figura((int)((48.0/240.0)*getWidth()),
	  			  (int)((138.0/320.0)*getHeight()),
	  			  (int)(144*porcentX),
				  (int)(46*porcentY));
		almacen[2]=new Figura((int)((48.0/240.0)*getWidth()),
				  (int)((196.0/320.0)*getHeight()),
				  (int)(144*porcentX),
				  (int)(46*porcentY));
		almacen[3]=new Figura((int)((48.0/240.0)*getWidth()),
				  (int)((274.0/320.0)*getHeight()),
				  (int)(144*porcentX),
				  (int)(46*porcentY));
		this.display=d;
		this.j=j;
	}
	
	protected void paint(Graphics g) {
		
		Font font;
		Image imagen;
		
		// TODO Auto-generated method stub
		//pintamos la pantalla en negro
		g.setColor(0,0,0);
		g.fillRect(0, 0, getWidth(), getHeight());
		porcentX=(double)getWidth()/240.0;
		porcentY=(double)getHeight()/320.0;
		
		//Ponemos el titulo del menu
		try{
			imagen=Image.createImage("/Imagenes/TitleMenuInicio.png");
			
			imagen=Carta.scaleImage(imagen, 
					(int)(imagen.getWidth()*porcentX),
					(int)(imagen.getHeight()*porcentY));
			
			g.drawImage(imagen,
					    getWidth()/2,
					    (int)((25.0/240.0)*getHeight()),
					   (Graphics.VCENTER|Graphics.HCENTER));
		}catch(Exception e){
			g.setColor(0, 200, 0);
		}
		
		
		font=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_LARGE);
		g.setFont(font);
		int i=0;
		
		//Pintamos los botones
		while (i<almacen.length){
			if(i==0){
				try{
					imagen=Image.createImage("/Imagenes/BotonJugar.png");
					imagen=Carta.scaleImage(imagen,almacen[i].getAncho(),almacen[i].getAlto());
					g.drawImage(imagen,
							    almacen[i].getX()+almacen[i].getAncho()/2,
							    almacen[i].getY()+almacen[i].getAlto()/2,
							   (Graphics.VCENTER|Graphics.HCENTER));
				}catch(Exception e){
					g.setColor(0, 200, 0);
				}
			}else if(i==1){
				try{
					imagen=Image.createImage("/Imagenes/BotonRed.png");
					imagen=Carta.scaleImage(imagen,almacen[i].getAncho(),almacen[i].getAlto());
					g.drawImage(imagen,
							    almacen[i].getX()+almacen[i].getAncho()/2,
							    almacen[i].getY()+almacen[i].getAlto()/2,
							   (Graphics.VCENTER|Graphics.HCENTER));
				}catch(Exception e){
					g.setColor(0, 200, 0);
				}			
			}else if(i==2){
				try{
					imagen=Image.createImage("/Imagenes/BotonCM.png");
					imagen=Carta.scaleImage(imagen,almacen[i].getAncho(),almacen[i].getAlto());
					g.drawImage(imagen,
							    almacen[i].getX()+almacen[i].getAncho()/2,
							    almacen[i].getY()+almacen[i].getAlto()/2,
							   (Graphics.VCENTER|Graphics.HCENTER));
				}catch(Exception e){
					g.setColor(0, 200, 0);
				}
			}else if(i==3){
				try{
					imagen=Image.createImage("/Imagenes/BotonIA.png");
					imagen=Carta.scaleImage(imagen,almacen[i].getAncho(),almacen[i].getAlto());
					g.drawImage(imagen,
							    almacen[i].getX()+almacen[i].getAncho()/2,
							    almacen[i].getY()+almacen[i].getAlto()/2,
							   (Graphics.VCENTER|Graphics.HCENTER));
				}catch(Exception e){
					g.setColor(0, 200, 0);
				}
			}
			i++;
		}
		
		
		//dibujamos la seleccion
		g.setColor(255,255,0);
		g.fillArc(almacen[puntero].getX()-7, almacen[puntero].getY()+almacen[puntero].getAlto()/2, 7, 7, 0, 360);
		g.fillArc(almacen[puntero].getX()+almacen[puntero].getAncho()-2, almacen[puntero].getY()+almacen[puntero].getAlto()/2, 7, 7, 0, 360);
	}
	
	protected void keyPressed(int keyCode){
		int arriba=getKeyCode(UP);
		int abajo=getKeyCode(DOWN);
		
		if(keyCode==arriba){
			if(puntero>0){puntero=puntero-1;repaint();}
		}else if(keyCode==abajo){
			if(puntero<almacen.length-1){puntero=puntero+1;repaint();}
		}else if(keyCode==-5){
			if(puntero==0){
				if(j.getJugador()[0].getDeck().getN()>=12 &&
					j.getJugador()[0].getHeros().getN()==4 &&
					j.getJugador()[1].getDeck().getN()>=12 &&
					j.getJugador()[1].getHeros().getN()==4){
					HLW.pJ.setFullScreenMode(true);
					display.setCurrent(HLW.pJ);
				}
			}else if(puntero==1){
			}else if(puntero==2){
				HLW.pCM.setFullScreenMode(true);
				display.setCurrent(HLW.pCM);
			}else if(puntero==3){
				if(j.getJugador()[0].getDeck().getN()>=12 &&
					j.getJugador()[0].getHeros().getN()==4 &&
					j.getJugador()[1].getDeck().getN()>=12 &&
					j.getJugador()[1].getHeros().getN()==4){
					HLW.pJ.setMode(1);
					HLW.pJ.setFullScreenMode(true);
					display.setCurrent(HLW.pJ);
				}
			}
		}
	}
	protected void pointerPressed(int _x, int _y){
		int aux=0;
		boolean b=false;
		while(!b && aux<almacen.length ){
			b=almacen[aux].pertenece(_x, _y);
			aux++;
		}
		if(b){
			aux--;
			if(aux==0){
				if(j.getJugador()[0].getDeck().getN()>=12 &&
					j.getJugador()[0].getHeros().getN()==4 &&
					j.getJugador()[1].getDeck().getN()>=12 &&
					j.getJugador()[1].getHeros().getN()==4){
					HLW.pJ.setMode(0);
					HLW.pJ.setFullScreenMode(true);
					display.setCurrent(HLW.pJ);
				}
			}else if(aux==1){
			}else if(aux==2){
				HLW.pCM.setFullScreenMode(true);
				display.setCurrent(HLW.pCM);
			}else if(aux==3){
				if(j.getJugador()[0].getDeck().getN()>=12 &&
					j.getJugador()[0].getHeros().getN()==4 &&
					j.getJugador()[1].getDeck().getN()>=12 &&
					j.getJugador()[1].getHeros().getN()==4){
					HLW.pJ.setMode(1);
					HLW.pJ.setFullScreenMode(true);
					display.setCurrent(HLW.pJ);
				}
			}
		}
		repaint();
	}
}
